草庐IT

Lua 垃圾回收

全部标签

c# - 防止对非托管代码中使用的托管引用进行垃圾回收

我的C#应用程序使用包装的C++代码进行计算。C++header:__declspec(dllexport)voidSetVolume(BYTE*data,unsignedintwidth);C++/CLI包装器:voidSetVolume(array^data,UInt32width){cli::pin_ptrpdata=&data[0];pal->SetVolume(pdata,width);}C#:publicstartCalc(){byte[]voxelArr=File.ReadAllBytes("Filtered.rec");palw.SetVolume(voxelArr,4

c# - 在 C# 中使用 RAII 安全吗?和其他垃圾收集语言?

我正在制作一个接受System.Windows.Form控件并设置其光标的RAII类。并在析构函数中将光标设置回原来的样子。但这是个坏主意吗?当此类的对象超出范围时,我可以安全地相信析构函数将被调用吗? 最佳答案 这是一个非常非常糟糕的主意。当变量超出范围时,不会调用终结器。它们在对象被垃圾回收之前的某个时刻被调用,这可能是很长一段时间之后。相反,您想要实现IDisposable,然后调用者可以使用:using(YourClassyc=newYourClass()){//Useycinhere}这将自动调用Dispose。在C#中很

c# - 如何降低电子邮件的垃圾邮件分数?

我正在向用户发送新的登录名和密码,但是当我在互联网上测试我们网站的版本时,垃圾邮件killer的垃圾邮件分数是4.6。这意味着它被困住了。电子邮件是带有链接图像的HTML(因此营销部门有他们漂亮的字体和颜色)。MailMessage()对象似乎没有让我对消息的输出格式有很多控制权。我可以采取什么措施来降低垃圾邮件分数?我正在使用这个发送:/*sendanemail*/MailMessagemsg=newMailMessage();msg.IsBodyHtml=true;//msg.BodyEncoding=Encoding.UTF8;msg.To.Add(newMailAddress(

c# - 抑制 C# 垃圾回收

我的应用程序分配了大量内存(数百万个小对象,总计几千兆字节)并保留了很长时间。.NET是否在浪费时间检查所有这些数据以对其进行GC?第2代GC(检查所有对象)多久发生一次?有什么方法可以降低它的频率或暂时抑制它的发生吗?我确切地知道什么时候我准备好收集大量内存,有什么方法可以优化它吗?我目前正在调用GC.Collect();GC.WaitForPendingFinalizers();那时。更新:性能计数器“GC时间百分比”显示平均为10.6%。 最佳答案 除非您可以确认垃圾收集器正在主动降低应用程序的性能,否则您不应采取措施削弱运行

c# - 回收 ListView 中这个看不见的、吞噬性能的单元格是什么?

所以我在使用ListView的Xamarin.Forms应用程序(在Android上)中遇到了性能问题。原因是,因为我在ListView的ItemTemplate中使用了一个非常复杂的自定义控件。为了提高性能,我在自定义控件中实现了很多缓存功能,并将ListView的CachingStrategy设置为RecycleElement。性能并没有变得更好。所以我深入挖掘,试图找出原因。我终于注意到了一些非常奇怪的错误,并将其隔离在一个新的空应用程序中。代码如下:主页.xaml测试控件.cspublicclassTestControl:Grid{staticintid=0;intmyid;p

c# - Expression<TDelegate>.Compile 和垃圾收集

当我将表达式编译成可执行代码并获取委托(delegate)时-如果不再存在对该委托(delegate)的引用,代码是否会被垃圾收集?有这方面的文档吗?因为我在MSDN中没有找到任何有用的东西。 最佳答案 是的,代码可以被垃圾回收。当您对T的表达式调用编译时,代码将编译为DynamicMethod,并且那些有资格进行垃圾收集。确实在MSDN上没有说明,但您可以查看DLR中Expression.Compile的实现,这是.net4.0附带的内容:http://dlr.codeplex.com/SourceControl/changese

c# - 在 visual studio 中调用垃圾收集

是否可以通过VisualStudio2015Enterprise在调试session期间收集gc?我想在调用GC.Collect()时观察我的应用程序的内存使用情况,但仅用于一些调试。因此,在调试应用程序期间从VisualStudio调用它会非常有帮助。非常感谢! 最佳答案 您可以在立即窗口中编写GC.Collect()。 关于c#-在visualstudio中调用垃圾收集,我们在StackOverflow上找到一个类似的问题: https://stackov

c# - 在 C#/.Net 中解析 Lua 数据结构的最简单方法

有人知道用C#或任何.Net库解析Lua数据结构的简单方法吗?这类似于JSON解码,除了Lua而不是javascript。此时看来我需要自己编写,但希望已经有一些东西了。 最佳答案 感谢你们,我使用LuaInterface找到了我想要的东西这是我想阅读的Lua数据结构(“c:\sample.lua”):TestValues={NumbericOneMillionth=1e-006,NumbericOnehalf=0.5,NumbericOne=1,AString="astring"}下面是一些使用LuaInterface读取Lua数

c# - 在静态类中声明的对象何时会被垃圾回收?

publicstaticclassstClass{staticClass1obj=newClass1();publicstaticintreturnSomething(){return0;}}如果我正在调用静态函数stClass.returnSomething()在其他一些非静态类中?注意:Class1不是静态的 最佳答案 从不,如obj不执行IDisposable.如果你的意思是什么时候obj获得垃圾收集那么答案仍然是永远不会-静态字段永远不会被垃圾收集,因此obj的对象如果您设置obj,引用将仅符合垃圾收集条件为空(或其他一些对

c# - .NET:典型的垃圾收集器开销是多少?

5%的执行时间花在了GC上?10%?25%?谢谢。 最佳答案 Thisblogpost对该领域进行了有趣的调查。海报的结论?对于他的示例,开销可以忽略不计。SotheGCheapissofastthatinarealprogram,evenintightloops,youcanuseclosuresanddelegateswithoutevengivingitasecond’sthought(orevenafewnanosecond’sthought).Asalways,workonaclean,safedesign,thenpro